home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / Code Inside / Tut40.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  4.7 KB  |  129 lines

  1. **********************************************************************************************************
  2.                     Win32Asm CrackMe 4
  3. **********************************************************************************************************
  4.  
  5. Author:        Acid_Cool_178
  6. Protection:    Understanding ;)
  7. URL:        http://members.nbci.com/_XMCM/norskehf/crackmes/asm/ac_crackme_04.zip
  8. Tools:        W32Dasm v8.93
  9.         Hex-Editor
  10.  
  11.  
  12. --->    Intro...
  13.  
  14. Welcome to my next Tutorial !!!
  15. This time we need to "Understand" the CrackMe :)
  16. Ok, not so hard.
  17.  
  18.  
  19. --->    Let's Begin...
  20.  
  21. As always first just open the CrackMe and we'll get a Message Box saying:
  22.  
  23. "Information"
  24. "Acid_Cool_178's Win32Assembely Crackme Version 4.78"
  25.  
  26. Press "Ok" and we'll get another Message Box saying:
  27.  
  28. "GOAL"
  29. "Try to UNDERSTAND the crackme and just don't patch the stuff When U understand it. Re-Code the
  30. "crackme in any language as you want And write a Tutorial. Send the solution to
  31. "Acid_Cool_178@hotmail.com"
  32.  
  33. Ok, so like i said before we need to "Understand" the CrackMe :)
  34. And about the "Re-Code the crackme in any language as you want" i'll leave that up to you ;)
  35. Now press "Ok" and the CrackMe quits.
  36. Disassemble the CrackMe in W32Dasm and click on "Strn Ref" (String Data References).
  37. You'll see 3 texts there namely:
  38.  
  39. "Acid_Cool_178's"
  40. "GOAL"
  41. "Yess"
  42.  
  43. Yess?
  44. We've seen the other 2 (Those 2 Message Boxes) but not this text :)
  45. So it's probably for another Message Box.
  46. Now double click on "GOAL" and you'll see this:
  47.  
  48. ----------------------------------------------------------------------------------------------------------
  49.  
  50. :00401013 6A00                    push 00000000
  51.  
  52. * Possible StringData Ref from Data Obj ->"GOAL"
  53.                                   |
  54. :00401015 6841304000              push 00403041
  55.  
  56. * Possible StringData Ref from Data Obj ->"GOAL"
  57.                                   |
  58. :0040101A 6846304000              push 00403046
  59. :0040101F 6A00                    push 00000000
  60.  
  61. * Reference To: USER32.MessageBoxA, Ord:01BBh
  62.                                   |
  63. :00401021 E850000000              Call 00401076
  64.  
  65. ----------------------------------------------------------------------------------------------------------
  66.  
  67. Ok, so that was our last Message Box, and when we pressed "Ok" the CrackMe, let's see what's next
  68. after this Message Box:
  69.  
  70. ----------------------------------------------------------------------------------------------------------
  71.  
  72. :00401026 33C0                    xor eax, eax            <--- XOR EAX which is now 00
  73. :00401028 6A00                    push 00000000
  74. :0040102A 6828230000              push 00002328            <--- Push 00002328 (Decimal 9000)
  75. :0040102F 6A00                    push 00000000
  76. :00401031 6A00                    push 00000000
  77.  
  78. * Reference To: USER32.SetTimer, Ord:024Dh
  79.                                   |
  80. :00401033 E844000000              Call 0040107C            <--- Set the Timer
  81. :00401038 52                      push edx
  82. :00401039 BA00000000              mov edx, 00000000        <--- Move 00000000 in EDX
  83. :0040103E B813010000              mov eax, 00000113        <--- Move 00000113 in EAX
  84. :00401043 3BD0                    cmp edx, eax            <--- Compare EAX with EDX (useless)
  85.  
  86. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  87. |:00401048(C)
  88. |
  89. :00401045 48                      dec eax            <--- EAX -1
  90. :00401046 3BD0                    cmp edx, eax            <--- Compare EAX with EDX
  91. :00401048 75FB                    jne 00401045            <--- If not equal jump 2 Instructions back
  92. :0040104A 741D                    je 00401069            <--- If equal jump to ExitProcess
  93. :0040104C 6A00                    push 00000000
  94. :0040104E 6A00                    push 00000000
  95.  
  96. * Reference To: USER32.KillTimer, Ord:0192h
  97.                                   |
  98. :00401050 E81B000000              Call 00401070            <--- Kill the Timer
  99.  
  100. ----------------------------------------------------------------------------------------------------------
  101.  
  102. As you can see the SetTimer is pretty useless ;)
  103. But then it puts 00000113 in EAX, and clears EDX.
  104. then EAX -1 and then EAX is Compared to EDX.
  105. If not equal we repeat this else we jump to the ExitProcess and the CrackMe quits :)
  106. If you scroll a bit down after the "KillTimer" then you'll see another Message Box with the text
  107. "Yess" :)
  108. So if you want to reach that place simply NOP the "je 00401069" at Offset 0040104A.
  109. I think you know how to do that, otherwise read my previous Tutorials :)
  110. That's All...
  111.  
  112.  
  113. --->    Greetings...
  114.  
  115. To be honest i'm getting a bit sick of these greetings everytime ;P
  116. So i'll just say:
  117.  
  118. Greetings to everyone i know, and to everyone who knows me, and You... ;P
  119.  
  120.  
  121.             Don't trust the Outside, trust the InSiDe !!!
  122.  
  123.                       Cya...
  124.  
  125.                     CoDe_InSiDe
  126.  
  127.  
  128. Email:    code.inside@home.nl
  129. Homepage: http://codeinside.cjb.net